Many control or pattern recognition computer systems are created by designing a function to model a selected set of data or statistics. From the modeled set of data, the computer system may control, estimate, correct or identify output data based on the modeled function. Many methods exist for creating functions that model data. Recently, neural networks have been employed to identify or create functional models for various types of systems.
A neural network consists of simple interconnected processing elements. The basic operation of each processing element is the transformation of its input signals to a useful output signal. Each interconnection transmits signals from one element to another element, with a relative effect on the output signal that depends on the weight for the particular interconnection. A neural network may be trained by providing known input values and output values to the network, which causes the interconnection weights to be changed until the desired system is modeled to a specified degree of accuracy or as precisely as reasonably possible.
With statistics software or neural network software, input-output relationships during a training phase are identified or learned, and the learned input-output relationships are applied during a performance phase. For example, during the training phase a neural network adjusts connection weights until known target output values are produced from known input values. During the performance phase, the neural network uses connection weights identified during the training phase to impute unknown output values from known input values. The neural network accuracy depends on data predictability and network structure that is chosen by the system designer, for example, the number of layers and the number of processing elements in each layer.
Because the reliability of a function modeled by a neural network depends on the reliability of data that is used to model a system, large quantities of data are often required to produce a model that satisfies the desired specifications. However, it can be difficult to collect data that represents all possible outcomes of a given system and, thus, a model of the system is created based on a training subset of data from the system from which predictions or corrections can be made. Because system functions based on the model may originate from data that was not contained in the initial training set, the potential for error within the system is increased with respect to the non-modeled input data.
It is desirable to have a system that can adapt and learn to make predictions or corrections based on non-modeled input data after the model has been put into action. This adaptive learning may be termed on-line learning. Due to the time that it takes to train a neural network, the use of neural networks have been limited to providing models for predictive systems when the inputs and outputs are known, such as a neural network used in predicting or recognizing a pattern based on selected inputs for which the system was trained. This type of system is not sufficient for producing accurate results in a control system environment where the model has not been trained for all possible outcomes or where nonlinearities or sudden changes may be introduced to the system under control. This is particularly true for the control of processes described by nonlinear differential equations of motion. It is well known by practitioners in the art that certain systems are difficult to control, such as systems in which the defining equations of motion for the process to be controlled are poorly known with respect to their functional forms, or in which the functional forms themselves may undergo sudden and unexpected variation, particularly when the effect of the control action enters nonlinearly. Thus, in nonlinear systems, neural networks trained off-line will not produce results that minimize the error of the control system based on data received on-line.
Because of the limitations in existing methods for training neural networks, and the general lack of a proof of stability in control applications in which the control enters nonlinearly, a technique which provides rapid on-line learning, and that insures stability for real time applications is highly desirable. Such a technique would have applicability in the field of flight control of either manned or unmanned aerial vehicles. For such applications, the dynamics are highly nonlinear and can undergo variations due to transitions in flight conditions, initiation of highly dynamic maneuvers involving large state excursions from trim flight conditions, or due to failures in actuators or due to damage to the airframe.
A number of airframes for modern aircraft, particularly high speed military fighter aircraft, are inherently unstable, and require sophisticated control electronics to translate pilot control inputs into appropriate signals to deflect control surfaces. Problems in the design of such control systems arise from the fact that very complex nonlinear relationships describe the physical behavior of the aircraft. The relations vary in a complex way with aircraft speed, altitude, and angle of attack. The control system is, in many respects, only as good as the model of the nonlinear physical system upon which the controller is based. Therefore, any system that can adaptively learn to correct for defects in the modeling process can provide improved stability in aircraft control systems.
Such a system is usable not only in the control of high speed military aircraft, but also for the control of other aircraft, such as helicopters. In particular, the system of the present invention is contemplated as useful in both control of high speed unstable aircraft and useful in the control of remotely controlled unmanned helicopter vehicles.
Thus, there is a need in the art for an adaptive control system that insures both the capability for real time, on-line learning and stability of the controlled process and that has an architecture that enables adaptation to processes in which the effect of the control action on the dynamics of the system is nonlinear.